package encheres.dao.impl;

import java.util.Collection;
import java.util.Collections;
import java.util.Date;
import java.util.List;

import org.hibernate.HibernateException;
import org.hibernate.Session;
import org.hibernate.Transaction;

import encheres.dao.HibernateUtil;
import encheres.dao.IProduitDAO;
import encheres.dao.IVenteDAO;
import encheres.dao.entities.Client;
import encheres.dao.entities.Produit;
import encheres.dao.entities.Vente;
import encheres.dao.entities.VenteId;

/**
 * Implémente les méthode DAO des objets Vente.
 * @author Nicolas
 *
 */
public class VenteDAOImpl implements IVenteDAO {

	/**
	 * {@inheritDoc}
	 */
	public List<Vente> listVentesProduit(final Produit produit)
			throws HibernateException {
		Session session = null;
		Transaction tx = null;
		try {
			session = HibernateUtil.getSessionFactory().openSession();
			tx = session.beginTransaction();
			String requete = "From Vente v Where v.id.idProduit="+produit.getIdProduit();
			List<Vente> listEncheres = (List<Vente>)session.createQuery(requete).list();
			// trie de la liste des ventes en fonction de la date
			Collections.sort(listEncheres);
			
			return listEncheres;
		} catch (HibernateException e) {
			if(tx != null){
				tx.rollback();
			}
			throw e;
		} finally {
			session.close();
		}
	}


}
